package org.domain.acount.entity;

// Generated 10/10/2009 10:48:50 by Hibernate Tools 3.2.4.GA

import static javax.persistence.GenerationType.IDENTITY;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.AccessType;
import org.hibernate.annotations.CollectionOfElements;
import org.hibernate.validator.Length;

/**
 * Conta generated by hbm2java
 */
@Entity
@Table(name = "conta", catalog = "acount")
public class Conta implements java.io.Serializable {

	private Integer idConta;
	private String usuarioUsername;
	private int tipocontaIdTipoconta;
	private int contaIdConta;
	private String nome;
	private String descricao;
	private BigDecimal saldo;
	private List<Conta> filhos = new ArrayList<Conta>();
	private String nomeCheio;
	private int transacaoNumber;



	public Conta() {
	}

	public Conta(String usuarioUsername, int tipocontaIdTipoconta,
			int contaIdConta) {
		this.usuarioUsername = usuarioUsername;
		this.tipocontaIdTipoconta = tipocontaIdTipoconta;
		this.contaIdConta = contaIdConta;
	}

	public Conta(String usuarioUsername, int tipocontaIdTipoconta,
			int contaIdConta, String nome, String descricao, BigDecimal saldo, int transacaoNumber) {
		this.usuarioUsername = usuarioUsername;
		this.tipocontaIdTipoconta = tipocontaIdTipoconta;
		this.contaIdConta = contaIdConta;
		this.nome = nome;
		this.descricao = descricao;
		this.saldo = saldo;
		this.transacaoNumber = transacaoNumber;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id_conta", unique = true, nullable = false)
	public Integer getIdConta() {
		return this.idConta;
	}

	public void setIdConta(Integer idConta) {
		this.idConta = idConta;
	}

	@Column(name = "usuario_username", nullable = false)
	public String getUsuarioUsername() {
		return this.usuarioUsername;
	}

	public void setUsuarioUsername(String usuarioUsername) {
		this.usuarioUsername = usuarioUsername;
	}

	@Column(name = "tipoconta_id_tipoconta", nullable = false)
	public int getTipocontaIdTipoconta() {
		return this.tipocontaIdTipoconta;
	}

	public void setTipocontaIdTipoconta(int tipocontaIdTipoconta) {
		this.tipocontaIdTipoconta = tipocontaIdTipoconta;
	}

	@Column(name = "conta_id_conta", nullable = false)
	public int getContaIdConta() {
		return this.contaIdConta;
	}

	public void setContaIdConta(int contaIdConta) {
		this.contaIdConta = contaIdConta;
	}

	@Column(name = "nome", length = 45)
	@Length(max = 45)
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name = "descricao")
	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	@Column(name = "saldo", precision = 10, scale=2, columnDefinition="decimal(10,2)")
	public BigDecimal getSaldo() {
		return this.saldo;
	}

	public void setSaldo(BigDecimal saldo) {
		this.saldo = saldo;
	}

	@Column(name = "transacaoNumber", nullable = false)
	public int getTransacaoNumber() {
		return transacaoNumber;
	}

	public void setTransacaoNumber(int transacaoNumber) {
		this.transacaoNumber = transacaoNumber;
	}
	
	@Transient
	public List<Conta> getFilhos() {
		return filhos;
	}

	public void setFilhos(List<Conta> filhos) {
		this.filhos = filhos;
	}

	@Transient
	public String getNomeCheio() {
		return nomeCheio;
	}

	public void setNomeCheio(String nomeCheio) {
		this.nomeCheio = nomeCheio;
	}

}
